/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package arvoreexemplo;

/**
 *Exemplo de árvore, retirada do livro Java Apredendo a Programar, 6ºEd. Deitel
 * Página 625 a 628
 * @author labt
 */

//definição da classe TreeNode
public class TreeNode {
    
    //membros da classe TreeNode
    TreeNode leftNode;//nó esquerdo
    int data;//valor do nó
    TreeNode rightNode;//nó direito
    
    //construtor inicializa os dados e os torna um nó-folha
    public TreeNode(int nodeData){
        
        data = nodeData;
        leftNode = rightNode = null;//o nó tem nenhum filho
    }//fim construtor sem argumentos TreeNode
    
    //localiza ponto de inserção e insere novo nó; ignora os valores duplicados
    public void insert(int insertValue){
        
        //insere na subárvore esquerda
        if(insertValue < data){
            
            //insere novo TreeNode
            if(leftNode == null){
                leftNode = new TreeNode(insertValue);
            } else //continua percorrendo subárvore esquerda
                leftNode.insert(insertValue);
        }//fim do if
        else if (insertValue > data)//insere na subárvore direita
        {
            //insere novo TreeNode
            if(rightNode == null) rightNode = new TreeNode(insertValue);
            else //continua percorrendo subárvore direita
                rightNode.insert(insertValue);
        }//fim de else if
    }//fim do método insert
}//fim da classe TreeNode
